Treat tristate as an enum when parsing
authorMatthias Clasen <mclasen@redhat.com>
Mon, 26 Oct 2020 12:01:13 +0000 (08:01 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 26 Oct 2020 12:01:13 +0000 (08:01 -0400)
This makes it so that you have to explicitly specify
"true" and "false" for the checked state, but it
matches how this enumeration is meant to be used.

gtk/gtkaccessiblevalue.c

index c7ac423bd03cb88be2122a4f6be34c1dfd9c46e4..c4590678120629b77b936696e53f3bd8a41ed6e3 100644 (file)
@@ -47,6 +47,7 @@
 #include "gtkaccessible.h"
 #include "gtkbuilderprivate.h"
 #include "gtkenums.h"
+#include "gtktypebuiltins.h"
 
 #include <math.h>
 #include <float.h>
@@ -1356,14 +1357,12 @@ gtk_accessible_value_parse (const GtkAccessibleCollect  *cstate,
 
     case GTK_ACCESSIBLE_COLLECT_TRISTATE:
       {
-        gboolean b;
+        int value;
 
         if (collects_undef && strncmp (str, "undefined", 9) == 0)
           res = gtk_undefined_accessible_value_new ();
-        else if (strncmp (str, "mixed", 5) == 0)
-          res = gtk_tristate_accessible_value_new (GTK_ACCESSIBLE_TRISTATE_MIXED);
-        else if (_gtk_builder_boolean_from_string (str, &b, error))
-          res = gtk_boolean_accessible_value_new (b);
+        else if (_gtk_builder_enum_from_string (GTK_TYPE_ACCESSIBLE_TRISTATE, str, &value, error))
+          res = gtk_boolean_accessible_value_new (value);
       }
       break;